frame(outInt,VeriLip_temp,VeriLip_MaxK,VeriLip_oDis,VeriLip_iDis,VeriLip_Output,VeriBatchSize,VeriLip_i,VeriLip_j,VeriLip_ChooseBatch,VeriLip_BatchOffset,main_struNam,main_weigNam,main_pdf,main_dataset,main_cnn,main_veri,return) and (
    int return<==0 and skip;
    char main_struNam[128]<=="C:/Users/asd18/Documents/gitee/sample_cnnv3/MNIST/v_struct.txt" and skip;
    char main_weigNam[128]<=="C:/Users/asd18/Documents/gitee/sample_cnnv3/MNIST/v_weight.txt" and skip;
    Predefine main_pdf and skip;
    InitPredefine(&main_pdf);
    ModelStructureLoad(main_struNam,&main_pdf);
    DataSet main_dataset and skip;
    InitDataSet(&main_dataset);
    DR_loadDS(60000,10000,28,28,1,10,&main_dataset,&main_pdf,RValue);
    CNN main_cnn and skip;
    LoadParaFromPredefine(main_pdf,&main_dataset,&main_cnn);
    DataConstruct(&main_dataset);
    CreateNNSpaceAndLoadinPara2Layer(&main_cnn,main_pdf,RValue);
    ModelWeightLoad(main_weigNam,&main_cnn);
	int VeriBatchSize<==10 and skip;
    int VeriLip_i,VeriLip_j and skip;
	int VeriLip_ChooseBatch<==4 and skip;
	int VeriLip_BatchOffset<==VeriLip_ChooseBatch*main_dataset.BatchSize+40 and skip;
	/*Mat *VeriLip_Output and skip;
	VeriLip_Output:=(Mat*)malloc(VeriBatchSize*sizeof(Mat));
	VeriLip_j:=0;
	while(VeriLip_j<VeriBatchSize)
	{
		MatCreate(&VeriLip_Output[VeriLip_j],1,10,RValue);
		VeriLip_j:=VeriLip_j+1
	};*/
	Mat VeriLip_Output and skip;
	MatCreate(&VeriLip_Output,VeriBatchSize,10,RValue);
	VeriLip_i:=0;
	while(VeriLip_i<VeriBatchSize)
	{
	    //inputCNN(main_dataset.TestFeature.element[VeriLip_BatchOffset+VeriLip_i],&main_cnn);
		//inputCNNLabel(main_dataset.TestLabel.element[VeriLip_BatchOffset+VeriLip_i],&main_cnn);
		inputCNN(main_dataset.BatchTrainFeature[VeriLip_ChooseBatch].element[VeriLip_i],&main_cnn);
		inputCNNLabel(main_dataset.BatchTrainLabel[VeriLip_ChooseBatch].element[VeriLip_i],&main_cnn);
		NNforwardSingle(&main_cnn,RValue);
		//DumpFloatArray(main_cnn.Layers[main_cnn.HiddenLayerNum+1].ActiMat[0].element[0],10,RValue);
		VeriLip_j:=0;
		while(VeriLip_j<10)
		{
			////(VeriLip_Output[VeriLip_i].element[0])[VeriLip_j]:=(main_cnn.Layers[main_cnn.HiddenLayerNum+1].ActiMat[0].element[0])[VeriLip_j];
			(VeriLip_Output.element[VeriLip_i])[VeriLip_j]:=(main_cnn.Layers[main_cnn.HiddenLayerNum+1].ActiMat[0].element[0])[VeriLip_j];
			VeriLip_j:=VeriLip_j+1
		};
		VeriLip_i:=VeriLip_i+1
	};
	float VeriLip_iDis and skip;
	float VeriLip_oDis and skip;
	float VeriLip_MaxK<==0.0 and skip;
	VeriLip_i:=0;
	while(VeriLip_i<VeriBatchSize)
	{
		VeriLip_j:=VeriLip_i + 1;
		while(VeriLip_j<VeriBatchSize)
		{
			if(VeriLip_i=VeriLip_j) then{
				skip
			}
			else{
				//VeriLip_iDis:=ManhattanDis(main_dataset.TestFeature.element[VeriLip_BatchOffset+VeriLip_i],main_dataset.TestFeature.element[VeriLip_BatchOffset+VeriLip_j],784,RValue);
				VeriLip_iDis:=ManhattanDis(main_dataset.BatchTrainFeature[VeriLip_ChooseBatch].element[VeriLip_i],main_dataset.BatchTrainFeature[VeriLip_ChooseBatch].element[VeriLip_j],784,RValue);
				VeriLip_oDis:=ManhattanDis(VeriLip_Output.element[VeriLip_i],VeriLip_Output.element[VeriLip_j],10,RValue);
				//DumpFloatArray(VeriLip_Output.element[VeriLip_i],10,RValue);
				//DumpFloatArray(VeriLip_Output.element[VeriLip_j],10,RValue);
				float VeriLip_temp<==VeriLip_oDis/VeriLip_iDis and skip;
				//int outInt<==10000*VeriLip_temp and skip;
				//output(outInt,"\n") and skip;
				if(VeriLip_temp>VeriLip_MaxK) then{
					VeriLip_MaxK:=VeriLip_temp
				}
				else{
					skip
				};
				skip
			};
			VeriLip_j:=VeriLip_j+1
		};
		VeriLip_i:=VeriLip_i+1
	};
	int outInt<==10000*VeriLip_MaxK and skip;
	output(outInt,"\n") and skip;
    return<==1 and RValue:=0;
    skip
)
